<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数值扩展</title>
</head>
<body>
<script type="text/javascript">
    {
        /**
         * Number.isFinite()：检查一个数值是否为有限的（finite）
         * Number.isNaN()：用来检查一个值是否为NaN
         */
        console.log('15', Number.isFinite(15)); // 15 true
        console.log('0.8', Number.isFinite(0.8)); // 0.8 true
    }
    {
        /** Number.isInteger()：判断一个值是否为整数 */
        console.log(Number.isInteger(25)); // true
        console.log(Number.isInteger(25.0)); // true
        console.log(Number.isInteger(25.1)); // false
    }
    {
        /**
         * Number.parseInt()
         * Number.parseFloat()
         */
        console.log(Number.parseInt('12.34')); // 12
        console.log(Number.parseFloat('123.45#')); // 123.45
        console.log(parseInt('12.34')); // 12
        console.log(parseFloat('123.45#')); // 123.45
    }
    {
        console.log(Math.pow(2, 53) === Math.pow(2, 53) + 1); // true
    }
    {
        /** Math.trunc()：用于去除一个数的小数部分，返回整数部分。*/
        console.log(Math.trunc(4.1)); // 4
        console.log(Math.trunc(4.9)); // 4
        console.log(Math.trunc(-4.9)); // -4
        // 对于非数值，Math.trunc内部使用Number方法将其先转为数值。
        console.log(Math.trunc("123.456")); // 123
        // 对于空值和无法截取整数的值，返回NaN。
        console.log(Math.trunc(NaN)); // NaN
    }
    {
        /** Math.cbrt()：计算一个数的立方根。*/
        console.log(Math.cbrt(8)); // 2
        console.log(Math.cbrt(-1)); // -1
        console.log(Math.cbrt('8')); // 2
        console.log(Math.cbrt('hello')); // NaN
    }
    {
        /** 指数运算符：ES7新增了一个指数运算符 */
        console.log(2 ** 3);
    }
</script>
</body>
</html>